import request from '@/config/axios'

// 水表信息 VO
export interface WaterVO {
	id: number // 主键
	commId: number // 社区ID
	factoryCode: string // 厂家code（0智慧仪表）
	modeFlag: number // 电表使用模式（0预付费 1后付费 ）
	waterName: string // 电表名称
	waterNo: string // 水表编码
	waterImei: string // 水表IMEI
	waterClock: string // 设备时钟
	lastReadTime: Date // 数据抄收时间
	waterRssi: number // 信号强度
	waterVoltage: number // 集中器ID
	balance: number // 设备余额
	totalUseData: number // 设备累计流量
	settleDayData: number // 结算日流量
	currentData: number // 瞬时流量
	lastData: number // 上月使用流量
	settleDay: number // 结算日
	valveStatus: number // 阀门状态(0无阀控 开-合 2关-断 3异常 4漏气 5比率开阀)
	voltageStatus: number // 电池状态(0正常 1欠压 3异常)
	feeStatus: number // 表端预付费费用状态(0正常 1余额不足 2欠费)
	matCodeId: number // 银联商户配置ID
	externalLinkId: number // 外系统-返回关联ID
	sort: number // 排序
	useStatus: string // 使用状态（enable使用中 disable禁用）
	serialServerId: number
}

// 水表信息 API
export const WaterApi = {
	// 查询水表信息分页
	getWaterPage: async (params: any) => {
		return await request.get({ url: `/zwsj/water/page`, params })
	},

	// 查询水表信息详情
	getWater: async (id: number) => {
		return await request.get({ url: `/zwsj/water/get?id=` + id })
	},

	// 新增水表信息
	createWater: async (data: WaterVO) => {
		return await request.post({ url: `/zwsj/water/create`, data })
	},

	// 修改水表信息
	updateWater: async (data: WaterVO) => {
		return await request.put({ url: `/zwsj/water/update`, data })
	},

	// 智慧仪表（水表）同步
	syncZhybWater: async () => {
		return await request.put({ url: `/zwsj/water/zhyb/sync` })
	},

	// 删除水表信息
	deleteWater: async (id: number) => {
		return await request.delete({ url: `/zwsj/water/delete?id=` + id })
	},

	// 导出水表信息 Excel
	exportWater: async params => {
		return await request.download({ url: `/zwsj/water/export-excel`, params })
	},

	// 获取房间下的电表
	getRoomRelaWater: async (roomId: number) => {
		return await request.get({
			url: `/zwsj/water/get/room/${roomId}/water`,
		})
	},

	// 开闸
	openValve: async (id: number) => {
		return await request.get({
			url: `/zwsj/water/open/valve?id=` + id,
		})
	},

	// 关闸
	closeValve: async (id: number) => {
		return await request.get({
			url: `/zwsj/water/close/valve?id=` + id,
		})
	},

	// 充值
	recharge: async (id: number, rechargeMoney: string) => {
		return await request.post({
			url: `/zwsj/water/recharge?id=${id}&rechargeMoney=${rechargeMoney}`,
		})
	},

	//抄读
	updateWaterParamByCallReadOut: async (id: number) => {
		return await request.get({
			url: `/zwsj/water/readout?id=` + id,
		})
	},
	// 充值查询
	rechargeQuery: async (id: number) => {
		return await request.get({
			url: `/zwsj/water/recharge/query?id=` + id,
		})
	},

	// 外系统接口-水表余额清零
	clearWaterBalance: async (id: number) => {
		return await request.post({
			url: `/zwsj/water/balance/clear?id=` + id,
		})
	},
}
